// 引入 uni-ajax 模块
import ajax from '@/uni_modules/u-ajax/js_sdk/index'
import mock from './mock'

const isDev = process.env.NODE_ENV === 'development'

// 创建请求实例
const instance = ajax.create({
	// 初始配置
	// isDev ? 'http://39.96.147.43:8082/' :
	baseURL: '/'
})

// 添加请求拦截器
instance.interceptors.request.use(
	config => {
		const token = uni.getStorageSync('token');
		token && (config.header['Token'] = token)
		uni.showLoading({
			title: '加载中'
		})
		return config
	},
	error => {
		uni.hideLoading();
		uni.showToast({
			title: '网络连接不可用！',
			icon: 'none'
		});
		// 对请求错误做些什么
		return Promise.reject(error)
	}
)

// 添加响应拦截器
instance.interceptors.response.use(
	response => {
		uni.hideLoading();
		// 对响应数据做些什么
		if (response.data.returnCode && response.data.returnCode !== "Y") {
			if (response.data.returnInfo.includes('登录')) {
				uni.redirectTo({
					url: '/pages/login/login'
				})
			} else {
				uni.showToast({
					title: response.data.returnInfo,
					icon: 'none'
				})
			}
		}
		if (response.data.tipMessage && response.data.code != 0) {
			uni.showToast({
				title: response.data.tipMessage,
				icon: 'none'
			})
		}
		return response.data
	},
	error => {
		uni.hideLoading();
		uni.showToast({
			title: error.statusCode + '错误',
			icon: 'none'
		})

		// mock数据
		if (isDev && error.statusCode == 404 && mock[error.config.url]) {
			return Promise.resolve(mock[error.config.url])
		}

		return Promise.reject(error)
	}
)

// 导出 create 创建后的实例
export default instance